package com.simon.train.member.config;

import com.simon.train.common.interception.LogInterceptor;
import com.simon.train.common.interception.MemberInterceptor;
import jakarta.annotation.Resource;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class SpringMvcConfig implements WebMvcConfigurer {

   @Resource
   MemberInterceptor memberInterceptor;

   @Resource
   LogInterceptor logInterceptor;

   @Override
   public void addInterceptors(InterceptorRegistry registry) {

       /**
        * 所有接口都启用这个日志拦截器
        * 放在前面 表示其优先级会高于memberInterceptor
        */
       registry.addInterceptor(logInterceptor);

       // 路径不要包含context-path
       /**
        * 通过对当前模块的拦截器进行添加
        * 决定哪些拦截器可以生效 哪些可以不生效
        * 之所以不在common模块定义 是为了各自模块不同的需求
        */
       registry.addInterceptor(memberInterceptor)
               .addPathPatterns("/**")  //表明针对所有的请求接口都生效
               .excludePathPatterns( //这几个页面此时还没有登录 所以不需要拦截，因为也没有token可以获取
                       "/hello",
                       "/member/sendCode",
                       "/member/login"
               );
   }
}
